home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 46 / Amiga Format CD46 (1999-10-20)(Future Publishing)(GB)[!][issue 1999-12].iso / -serious- / programming / other / tandem / teaching / 31.asm < prev    next >
Assembly Source File  |  1999-09-06  |  2KB  |  71 lines

  1. * 31.asm     Demonstrate TLerror       Version 0.00   1.9.97
  2.  
  3.  
  4.  include 'Front.i'        ;*** change to 'Tandem.i to step thru TL's ***
  5.  
  6.  
  7. ; Most tandem.library routines can return with an error condition. Their
  8. ; MACRO's will generally return EQ if in error. Your program can find the
  9. ; specifics of the error in xxp_errn(a4). Programs which can return an
  10. ; error leave xxp_errn(a4)=0 if ok, else they return an error number. If
  11. ; you call TLerror while xxp_errn(a4)<>0, then it will put an error report
  12. ; in (a4) (where you can put it up on a requester for acknowledgement), and
  13. ; TLerror also sends the error report to the monitor. If there is a DOS
  14. ; error, TLerror also sends that to the monitor.
  15.  
  16. ; The prgram below does everything on the monitor (CLI), rather than using
  17. ; intuition windows.
  18.  
  19.  
  20. strings: dc.b 0
  21.  dc.b $0C,'Demonstrate TLerror',0 ;1
  22.  dc.b 'First, I will try to "Makedir PRT:Fred", which is illegal',0 ;2
  23.  dc.b 'After that failed, I called TLError, which puts this in buffer:',0 ;3
  24.  dc.b '(Press <return> to acknowledge)',0 ;4
  25. st_5: dc.b 'Makedir >NIL: PRT:Fred',0 ;5     <- an illegal DOS command
  26. st_6: dc.b 'List >NIL: RAM:',0 ;6     <- a legal DOS command
  27.  dc.b 'Now, I''ll send a (hopefully) legal command:  "List >NIL: RAM:"',0 ;7
  28.  dc.b 'Here is what TLerror reports (i.e. nothing since legal)',0 ;8
  29.  dc.b 0 ;9
  30.  
  31.  ds.w 0
  32.  
  33.  
  34. * sample program
  35. Program:
  36.  TLoutstr #1               ;greetings
  37.  TLoutstr #9
  38.  
  39.  TLoutstr #2               ;send string 2
  40.  TLoutstr #4
  41.  TLinput
  42.  
  43.  TLoutstr #3               ;string 3 first (else TLerror reports on this)
  44.  
  45.  move.l xxp_dosb(a4),a6    ;set up to execute st_5 (=string 5) as a command
  46.  move.l #st_5,d1
  47.  moveq #0,d2
  48.  moveq #0,d3
  49.  jsr _LVOExecute(a6)       ;send an illegal command, to cause an error
  50.  
  51.  TLerror                   ;get error report to buff
  52.  
  53.  TLoutstr #9
  54.  TLoutstr #4
  55.  TLinput
  56.  
  57.  TLoutstr #9
  58.  TLoutstr #7               ;now send strings 7 and 8
  59.  TLoutstr #8
  60.  move.l #st_6,d1           ;now send a legal command (at st_6, string 6)
  61.  moveq #0,d2               ;(if you re-run this, it will be illegal, since
  62.  moveq #0,d3               ; RAM:Fred will already exist)
  63.  jsr _LVOExecute(a6)
  64.  
  65.  TLerror                   ;get error report to buff
  66.  
  67.  TLoutstr #9
  68.  TLoutstr #4               ;send to op window
  69.  TLinput                   ;wait for acknowledge
  70.  rts
  71.